#!/usr/bin/env python2

# Import python libs
import sys

# Import salt libs
import salt.scripts

def get_avail():
    '''
    Return the available salt commands
    '''
    ret = []
    for fun in dir(salt.scripts):
        if fun.startswith('salt'):
            ret.append(fun[5:])
    return ret

def redirect():
    '''
    Change the args and redirect to another salt script
    '''
    avail = get_avail()
    if len(sys.argv) < 2:
        msg = 'Must pass in a salt command, available commands are:'
        for cmd in avail:
            msg += '\n{0}'.format(cmd)
        print(msg)
        sys.exit(1)
    cmd = sys.argv[1]
    if cmd not in avail:
        # Fall back to the salt command
        sys.argv[0] = 'salt'
        s_fun = salt.scripts.salt_main
    else:
        sys.argv[0] = 'salt-{0}'.format(cmd)
        sys.argv.pop(1)
        s_fun = getattr(salt.scripts, 'salt_{0}'.format(cmd))
    s_fun()

if __name__ == '__main__':
    redirect()
